/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * ConsultaCandidat.java
 *
 * Created on 27/03/2011, 02:06:30 AM
 */

package zonasoft.Vistas.Negocio;

//import java.sql.Connection;
import com.mysql.jdbc.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import zonasoft.Conceptos.Especiales.Departamentos;
import zonasoft.Conceptos.Especiales.Municipios;
import zonasoft.Conceptos.Puesto;
import zonasoft.Conceptos.Zona;
import zonasoft.Manejadores.ManejadorBaseDatos;
import zonasoft.Manejadores.ManejadorDepartamentos;
import zonasoft.Manejadores.ManejadorLugar;
import zonasoft.Manejadores.ManejadorMunicipios;
import zonasoft.Manejadores.ManejadorPuesto;
import zonasoft.Manejadores.ManejadorZona;

/**
 *
 * @author Usuario
 */
public class ConsultaZona extends javax.swing.JFrame {
 HashMap<String,Integer> departamentos;
    HashMap<String,Integer> municipios;
        HashMap<String,Integer> zonas;
      HashMap<String,Integer> barrio;
      HashMap<String,Integer> puestos;
      List<Puesto> puestosActuales=new ArrayList<Puesto>();
    /** Creates new form ConsultaCandidat */
    public ConsultaZona() {
        initComponents();
        this.setLocationRelativeTo(null);
    }
HashMap<String,Integer> elecciones;
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jXTaskPaneContainer1 = new org.jdesktop.swingx.JXTaskPaneContainer();
        jLabel1 = new javax.swing.JLabel();
        jXPanel1 = new org.jdesktop.swingx.JXPanel();
        comboDepartamento = new javax.swing.JComboBox();
        jLabel27 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        jLabel32 = new javax.swing.JLabel();
        comboZona = new javax.swing.JComboBox();
        comboMunicipios = new javax.swing.JComboBox();
        jLabel29 = new javax.swing.JLabel();
        comboPuestos = new javax.swing.JComboBox();
        jLabel30 = new javax.swing.JLabel();
        campoMesa = new javax.swing.JTextField();
        BotonAceptar = new javax.swing.JButton();

        setResizable(false);

        jLabel1.setFont(new java.awt.Font("Lucida Bright", 1, 18)); // NOI18N
        jLabel1.setText("Consulta de Zonas");
        jXTaskPaneContainer1.add(jLabel1);

        jXPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED, java.awt.Color.gray, java.awt.Color.lightGray, java.awt.Color.gray, java.awt.Color.lightGray), "Datos Zonas", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Bright", 1, 12))); // NOI18N

        listaraDepartamento();
        comboDepartamento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comboDepartamentoActionPerformed(evt);
            }
        });

        jLabel27.setFont(new java.awt.Font("Lucida Bright", 0, 12)); // NOI18N
        jLabel27.setText("Departamento");

        jLabel31.setFont(new java.awt.Font("Lucida Bright", 0, 12)); // NOI18N
        jLabel31.setText("Municipio");

        jLabel32.setFont(new java.awt.Font("Lucida Bright", 0, 12)); // NOI18N
        jLabel32.setText("Zona de Votacion");

        //listaraZonas();
        comboZona.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comboZonaActionPerformed(evt);
            }
        });

        //listaraBarrios();
        comboMunicipios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comboMunicipiosActionPerformed(evt);
            }
        });

        jLabel29.setFont(new java.awt.Font("Lucida Bright", 0, 12)); // NOI18N
        jLabel29.setText("Puesto de Votacion");

        //listarapuestos();
        comboPuestos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comboPuestosActionPerformed(evt);
            }
        });

        jLabel30.setFont(new java.awt.Font("Lucida Bright", 0, 12)); // NOI18N
        jLabel30.setText("Numero de Mesa");

        campoMesa.setEditable(false);

        javax.swing.GroupLayout jXPanel1Layout = new javax.swing.GroupLayout(jXPanel1);
        jXPanel1.setLayout(jXPanel1Layout);
        jXPanel1Layout.setHorizontalGroup(
            jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jXPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jXPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel27)
                        .addGap(28, 28, 28)
                        .addComponent(comboDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jXPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel32)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(comboZona, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(26, 26, 26)
                .addGroup(jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jXPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel30)
                        .addGap(18, 18, 18)
                        .addComponent(campoMesa, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jXPanel1Layout.createSequentialGroup()
                        .addGroup(jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel29)
                            .addComponent(jLabel31))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(comboMunicipios, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(comboPuestos, 0, 173, Short.MAX_VALUE))))
                .addContainerGap())
        );
        jXPanel1Layout.setVerticalGroup(
            jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jXPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel27)
                    .addComponent(comboDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel31)
                    .addComponent(comboMunicipios, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(34, 34, 34)
                .addGroup(jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel32)
                    .addComponent(comboZona, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel29)
                    .addComponent(comboPuestos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jXPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel30)
                    .addComponent(campoMesa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(52, Short.MAX_VALUE))
        );

        BotonAceptar.setFont(new java.awt.Font("Lucida Bright", 1, 12)); // NOI18N
        BotonAceptar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/zonasoft/Vistas/iconos/ok 32.png"))); // NOI18N
        BotonAceptar.setText("Aceptar");
        BotonAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotonAceptarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jXTaskPaneContainer1, javax.swing.GroupLayout.DEFAULT_SIZE, 656, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGap(239, 239, 239)
                .addComponent(BotonAceptar, javax.swing.GroupLayout.DEFAULT_SIZE, 138, Short.MAX_VALUE)
                .addGap(279, 279, 279))
            .addGroup(layout.createSequentialGroup()
                .addGap(28, 28, 28)
                .addComponent(jXPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(16, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jXTaskPaneContainer1, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jXPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(BotonAceptar)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void BotonAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BotonAceptarActionPerformed
        // TODO add your handling code here:
        this.dispose();
    }//GEN-LAST:event_BotonAceptarActionPerformed

    private void comboDepartamentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboDepartamentoActionPerformed
        // TODO add your handling code here
        //                  textDep.setText("");
        String id=  comboDepartamento.getSelectedItem().toString();
        int indice=comboDepartamento.getSelectedIndex();
        if(indice!=0) {

            Integer IdDepartamento=departamentos.get(id);
            listaraMunicipios(String.valueOf(IdDepartamento));
            comboMunicipios.setEnabled(true);
            comboMunicipios.setSelectedIndex(8);

            //        comboZona.setEnabled(true);
        } else {
            // JOptionPane.showMessageDialog(null, "Seleccione un departamento primero");
            //           textDep.setText("Seleccione un departamento ");
            comboZona.removeAllItems();
            comboMunicipios.removeAllItems();
            //          comboZona.setEnabled(false);
            comboMunicipios.setEnabled(false);

        }
}//GEN-LAST:event_comboDepartamentoActionPerformed

    private void comboZonaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboZonaActionPerformed
        // TODO add your handling code here:
        listaraPuestos();
    }//GEN-LAST:event_comboZonaActionPerformed

    private void comboMunicipiosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboMunicipiosActionPerformed
        // TODO add your handling code here:
        listaraZonas();
    }//GEN-LAST:event_comboMunicipiosActionPerformed

    private void comboPuestosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboPuestosActionPerformed
        // TODO add your handling code here:
        if(comboPuestos.getItemCount()>1) {
            String nombrePuesto=comboPuestos.getSelectedItem().toString();
            int idPuesto=puestos.get(nombrePuesto);
            //String Direccion = buscarPuestoById2(String.valueOf(idPuesto)).getDireccion();
            //areaDireccion.setText(Direccion);
            String numMesasStr=buscarPuestoById(String.valueOf(idPuesto)).getMesas().trim();
            int numMesas=Integer.parseInt(numMesasStr);
           campoMesa.setText(numMesasStr);
//            for (int i = 0; i <numMesas; i++) {
//                comboMesa.addItem(i+1);
//                           } // ciclo mesa
            //       int idDireccion=(puestos.get(nombrePuesto));

        }
    }//GEN-LAST:event_comboPuestosActionPerformed

//    public void limpiar(){
//      campoIdentificacion.setText("");
//             campoNombre.setText("");
//            campoapellido.setText("");
//            campoprofesion.setText("");
//            campotelefono.setText("");
//    }

    public void listaraDepartamento(){
    ManejadorBaseDatos  mbd = ManejadorBaseDatos.getInstancia();
    departamentos = new HashMap<String,Integer>();
      try{
       mbd.conectar();
       ManejadorDepartamentos.con =  (Connection) mbd.getConexion();
        comboDepartamento.removeAllItems();

        List listarDepartamento = null;
              listarDepartamento=ManejadorDepartamentos.listarDepartamentos();
              Iterator<Departamentos> iter = listarDepartamento.iterator();
              Departamentos dep = null;
              comboDepartamento.addItem("--Seleccione un departamento---");
              while (iter.hasNext()){
                dep = iter.next();
                int codigoDepartamento = Integer.parseInt(dep.getCodigoDepartamento());
                comboDepartamento.addItem(dep.getNombre());
               departamentos.put(dep.getNombre(), codigoDepartamento) ;
                }
              }catch (Exception ex){
                ex.printStackTrace();
              }

        } // fin de listar departamentos

     public void listaraPuestos() {
        ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
        puestos = new HashMap<String, Integer>();
        try {
            mbd.conectar();
            ManejadorPuesto.con = (Connection) mbd.getConexion();
            comboPuestos.removeAllItems();

            List listarPuestos = new ArrayList();

            int indice = comboZona.getSelectedIndex();
            comboPuestos.addItem("-- Seleccione un Puesto --");
            if (indice>=0) {
                String nombreZona = (comboZona.getSelectedItem().toString() != null) ? comboZona.getSelectedItem().toString() : "vacio";
                Integer idZona_ = zonas.get(nombreZona);
//            listarPuestos = ManejadorPuesto.listarPuestos();
                listarPuestos = ManejadorPuesto.listarPuestosByZona(String.valueOf(idZona_));
                puestosActuales=listarPuestos;
                Iterator<Puesto> iter = listarPuestos.iterator();
                Puesto Pue = null;

                while (iter.hasNext()) {
                    Pue = iter.next();
                    int codPuesto = Integer.parseInt(Pue.getCodigoPuesto());
                    int idpuesto=Integer.parseInt(Pue.getIdPuesto());
                    comboPuestos.addItem(Pue.getNombrePuesto());
                    puestos.put(Pue.getNombrePuesto(), idpuesto);
                }

                if(comboPuestos.getItemCount()>1)
                comboPuestos.setSelectedIndex(1);

            }
        } catch (Exception ex) {
            Logger.getLogger(ConsultaZona.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

      public void listaraMunicipios(String idDepartamentos){
            ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
            municipios = new HashMap<String,Integer>();
            try{
             mbd.conectar();
             ManejadorMunicipios.con = (Connection) mbd.getConexion();
             comboMunicipios.removeAllItems();
           List listarMunicipios = null;
           listarMunicipios = ManejadorMunicipios.listarMunicipios(idDepartamentos);
           Iterator<Municipios> iter = listarMunicipios.iterator();
           Municipios mun = null;
               while (iter.hasNext()){
           mun = iter.next();
           int codigoMunicipio = Integer.parseInt(mun.getCodigoMunicipio());
           comboMunicipios.addItem(mun.getNombre());
           municipios.put(mun.getNombre(), codigoMunicipio);
            }

           comboMunicipios.setSelectedIndex(8);
           comboMunicipios.setEnabled(true);
           listaraZonas();
            }catch(Exception ex){
              ex.printStackTrace();
            }
        }// fin del listar Municipios


        public void listaraZonas(){
            ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
          zonas = new HashMap<String,Integer>();
            try{
             mbd.conectar();
             ManejadorZona.con = (Connection) mbd.getConexion();
             comboZona.removeAllItems();
           List listarZonas = null;
           if(comboMunicipios.isEnabled() && comboMunicipios.getItemCount()>0)
           {
           String idM = comboMunicipios.getSelectedItem().toString();
           Integer idMu = municipios.get(idM);

           listarZonas = ManejadorZona.listarZonas(String.valueOf(idMu) );
           Iterator<Zona> iter = listarZonas.iterator();
           Zona zon = null;
               while (iter.hasNext()){
           zon = iter.next();
           int codigoZona = Integer.parseInt(zon.getCodigoZona());
           comboZona.addItem(zon.getCodigoZona().trim());
           zonas.put(zon.getCodigoZona(), codigoZona);
               }
           comboZona.requestFocus();
            }
           
            }catch(Exception ex){
              ex.printStackTrace();
            }
        }// fin del listar Municipios
//    public void listaraBarrios(){
//     ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
//     barrio = new HashMap<String,Integer>();
//        try {
//            mbd.conectar();
//            ManejadorLugar.con = (Connection) mbd.getConexion();
//            comboBarrio.removeAllItems();
//
//            List listarBarrio = null;
//            listarBarrio = ManejadorLugar.listarBarrios();
//            Iterator<Barrio>iter = listarBarrio.iterator();
//            Barrio bar = null;
//            comboBarrio.addItem("-- Seleccione un Barrio --");
// while (iter.hasNext()){
//                bar = iter.next();
//                int idBarrio = Integer.parseInt(bar.getIdBarrio());
//                comboBarrio.addItem(bar.getNombre());
//               barrio.put(bar.getNombre(), idBarrio) ;
//                }
//        } catch (Exception ex) {
//            Logger.getLogger(RegistrarPuesto.class.getName()).log(Level.SEVERE, null, ex);
//        }
//     }

    // PARA EL COMBO BOX
        public Puesto buscarPuestoById(String id)
        {
            Puesto p=null;
            for (Puesto puesto : puestosActuales) {
                if(puesto.getIdPuesto().equals(id))
                {
                    p= puesto;
                    break;
                }
            }

            return p;
        }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton BotonAceptar;
    private javax.swing.JTextField campoMesa;
    private javax.swing.JComboBox comboDepartamento;
    private javax.swing.JComboBox comboMunicipios;
    private javax.swing.JComboBox comboPuestos;
    private javax.swing.JComboBox comboZona;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private org.jdesktop.swingx.JXPanel jXPanel1;
    private org.jdesktop.swingx.JXTaskPaneContainer jXTaskPaneContainer1;
    // End of variables declaration//GEN-END:variables

}
